The exemplary embodiment relates to fields of image processing. It finds particular application in connection with the provision of a user interface for implementing color modifications within an image or document in order to enhance its visual appearance, and is described with particular reference thereto. However, a more general application can be appreciated with regards to image classification, image content analysis, image archiving, image database management and searching, and so forth.
Digital color images are typically obtained via digital photography, digital scanning of hardcopy media, or synthetic generation by a software application. A need often arises to modify the colors in an image to improve or enhance its appearance. For example improper or inadequate color correction during the capture process may produce an image that appears excessively dark and de-saturated. Alternatively, a user may have a preference for certain colors to be reproduced in a certain manner, and this preference may not be adequately captured in the image.
Modifying the colors in a digital image via an image processing application typically requires an understanding of how the colors are numerically represented. Colors are represented as a multidimensional n-tuple (where n is typically 3 or 4). The entire valid range of n-tuples forms an n-dimensional color space. Various color spaces exist for representing colors within a digital color image. Displays use an additive color mixing model and represent color in an RGB (red green blue) color space. Printers produce color via a subtractive color mixing model, employing cyan, magenta, yellow and often black primaries. The corresponding color space for representing printed colors is referred to as CMYK. In addition, there are the so called perceptual spaces that are designed to correlate with human visual perception. CIELAB and HSV are examples of such color spaces. Depending on the workflow and application, digital color images can be represented in any of these color spaces.
Numerous software applications exist for modifying colors in images, including Adobe Photoshop, Microsoft Picture Manager, and many others. However, modifying the colors in an image using these applications requires the user to be knowledgeable about the various aforementioned color spaces and to understand how numerical changes in these color spaces induce changes in color appearance of the image. This level of knowledge and skill is typically beyond that of the average consumer who is not a color specialist.
Casual users typically employ natural language terms to describe color, such as red, green, purple, olive, maroon, etc. and would prefer to interact with color images using these terms. Every natural language that has words for colors is considered to have from two to twelve basic color terms. All other colors are usually considered by speakers of that language to be variants of these basic color terms. For example, English contains the eleven basic color terms “black,” “white,” “red,” “green,” “yellow,” “blue,” “brown,” “orange,” “pink,” “purple” and “gray,” which is reflected in the standard Crayola set. Italian and Russian have twelve, distinguishing blue and azure. Thus, different cultures have different terms for colors, and may also assign some color names to slightly different parts of the spectrum. For instance, the Chinese have a character for a color covering both blue and green, while blue and green traditionally are shades of that color character. South Korea, on the other hand, differentiates between blue and green with different characters.
Other properties within an image also exists other than color, and natural language terms exist for these properties. Examples are image sharpness, contrast, or blurriness, and these can also conceivably be modified.
The need arises, therefore, for a natural language user interface (LUI) within color image editing applications that can provide a simple, intuitive, and easy to use means for ordinary users to create desired changes in color images. While the color science and the underlying terminology is understood by color specialists and application developers, it is a significant challenge to build an intuitive human-computer interface for a casual user to easily create, select and modify image data.
Furthermore, mobile devices such as smart-phones are increasingly including the ability to capture, manipulate, and display color images. Users of these devices are typically not color specialists. In addition, the small form factor of the mobile device necessitates a very simple and intuitive interface for modifying colors in images.